In an electronic device, one or more periodic systems may define frame boundaries or other time-dependent intervals in which certain processing tasks can have different resource requirements (e.g., bandwidth). For example, many electronic devices include a display processor that may be configured to blend multiple layers to compose a single image to be sent to a display and appropriately rendered within a given display frame. In that particular context, several different applications operating within the electronic device may send information to the display at any given time. For example, a system application may send a signal strength indicator to the display while a video application may send decoded video. In some cases, the same application may send multiple display items to the display at substantially the same time. The video application, for example, may send the decoded video plus a video counter and video control buttons. The video application may also send a decorative border that frames the decoded video. As another example, the system application may send the signal strength indicator plus a clock to the display. Each display item that the applications send to the display may comprise a separate display layer with a particular bandwidth requirement. For example, one of the display layers sent to the display may change at a high rate (e.g., decoded video that may change at a rate of approximately thirty (30) frames per second), while other display layers may change at a much lower rate or not at all. For example, time-of-day information and a video counter may change at a rate of approximately one (1) frame per second. Furthermore, in many cases, only small subsections of one or more display layers may change. The display processor may generally blend the various display layers to form a single image for the display and update the single image according to a bandwidth requirement of the fastest changing display layer. For example, if the decoded video changes at a rate of approximately 30 frames per second, the display processor may read in and blend all display layers at the rate of approximately 30 frames per second. As such, in a periodic system, bandwidth and/or other resource requirements may vary from one frame to another depending on the particular tasks to be performed in a given frame or other time-dependent interval.
In a periodic system such as a display processor configured to render data within defined time periods (often called “frames”), system bandwidth changes are conventionally handled completely in software. Consequently, in a conventional system, software bears the responsibility to ensure that the correct bandwidth is applied on time. This can potentially result in wasted power and degraded performance, however, as software is typically configured to handle system bandwidth changes conservatively due to software latencies and an inability to know the detailed hardware state. For example, when a next display frame requires more bandwidth than a current display frame, a software-controlled bandwidth increase for the next frame would be pre-emptively signaled early to ensure that the increase will be ready when the next frame begins. However, this results in wasted power because the bandwidth increase is applied earlier than actually required (i.e., during the current frame, which requires less bandwidth than the next frame). Furthermore, software-controlled bandwidth changes can also result in wasted power when the next frame requires less bandwidth than the current frame. For example, due to software latencies, software generally has to apply a bandwidth decrease pessimistically after the processing deadline for the current frame has expired to ensure that the current frame (which requires more bandwidth than the next frame) does not experience the decreased bandwidth. As such, power may be wasted during a portion of the next frame when the allocated bandwidth exceeds what is needed.
Accordingly, based on the foregoing, there is a need for mechanisms that may apply system bandwidth changes closer to the inter-frame/intra-frame deadline(s) used to demarcate when the change needs to be applied to optimize power and performance.